1

一、数据类型

基本类型:`Null Boolean String Undefined Number(NB SUN)`

引用类型:`Array Function Object`

类型判断:typeof 返回结果
    `"undefined"(未定义)    "boolean"(布尔值)             "string"(字符串)
    "number"(数值)            "object"(对象或者null)        "funtion"(函数) `
    
  • 拓展:堆 VS 栈(两种数据结构)
 **堆:**队列优先,先进先出;由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。
          其操作方式类似于数据结构中的栈。
   
 **栈:**先进后出;动态分配的空间 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,
         分配方式倒是类似于链表。
      
  1. 基本类型:基本数据类型可以直接访问,他们是按照值进行分配的,存放在栈(stack)内存中的简单数据段,数据大小确定,内存空间大小可以分配。
  2. 引用类型:即存放在堆(heap)内存中的对象,而js不允许直接访问内存中的位置,因此操作对象时实际上是操作其引用,而不是实际对象。

    引申:js中的浅拷贝与深拷贝 ——待补充

二、操作符

主要有一元,位,布尔,加,减,乘,关系,相等,条件,赋值,逗号等操作符。    
  • ++递增/--递减前置和后置区别?

首先要明白,前置是先计算,再赋值;后置是先赋值,再计算。(操作符在前就先计算,在后就后计算)
例如:

function a(){ 
    var a=5; 
    var c=a++; 
    console.log(c);  // 5, a先赋值给c,再自增
};

function b(){ 
    var a=5; 
    var c=a++; 
    console.log(c);  // 6, a先自增,再赋值给c
};
 
  • 数据转换(隐式和显式)

a. 显式:

Boolean(),Number(),parseInt(),parseFloat(),toString()

b. 隐式:

递增、递减(无论是前置还是后置),一元加,减,乘,求余/取模、逻辑非,关系比较,还有if等语句。

这个地方例子还蛮详细的:https://www.haorooms.com/post...

三、语句

if,for,for-in,continue,break等     
  1. break VS continue

break: 退出整个循环; continue: 退出当前一轮循环;for循环里两都皆可用。

引申:js中的循环遍历(包括ES6) ——待补充

四、函数

  • 定义函数的几种方式?

    a. 函数声明: function fn(){...}
    b. 函数表达式:let fn=function(){...}
    c. 构造函数方式:let fn=new Function(参数,...,函数体)


夕凪
258 声望11 粉丝